home *** CD-ROM | disk | FTP | other *** search
- ; Subroutine.: LEFTJUST.ASM
- ; Author.....: Luis A. Castro
- ; Date.......: 06/15/83
- ; Notice.....: Copyright 1983, Ashton-Tate, All Rights Reserved
- ; Notes......: Left justify a character string.
- ;
- ORG 42000 ; LOAD IN dBASE II's FREE AREA
- SHLD SAVEHL ; SAVE HL REGISTER PAIR
- MOV C,M ; STORE LENGTH OF STRING TO COUNTER
- MOV D,H ; LOAD DE REGISTER PAIR
- MOV E,L ; WITH HL REGISTER PAIR
- INX D ; INCREMENT TO FIRST CHAR OF STRING
- ; ON DE PAIR
- ;
- LOOP: INX H ; NEXT CHARACTER
- MOV A,M ; FETCH CHARACTER
- CPI ' ' ; IS IT A SPACE?
- JNZ JUST ; IF NOT A SPACE, THEN JUSTIFY
- DCR C ; DECREMENT COUNTER
- JNZ LOOP ; REPEAT IF NOT END OF STRING
- JZ DONE ; END OF STRING REACHED, EXIT
- ;
- JUST: MOV A,M ; FETCH CHARACTER
- MVI M,' ' ; REPLACE MEMORY WITH SPACE
- STAX D ; STORE CHARACTER IN ACCUMULATOR
- ; TO NEXT AVAILABLE CHARACTER ON
- ; LEFT OF STRING
- INX D ; INCREMENT BOTH POINTERS
- INX H
- DCR C ; DECREMENT COUNTER
- JNZ JUST ; REPEAT UNTIL END OF STRING
- ;
- DONE: LHLD SAVEHL ; RESTORE HL PAIR
- RET
- ;
- SAVEHL DB 0,0
- END